package hdb.controller;

import hdb.dao.ArtikelDao;
import hdb.dao.LagerTypDao;
import hdb.dao.VorratDao;
import hdb.om.Artikel;
import hdb.om.Vorrat;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

/**
 * Controller to generate the Home Page basics to be rendered by a view. It
 * extends the convenience class AbstractController that encapsulates most of
 * the drudgery involved in handling HTTP requests.
 * 
 * @author juergen.schoenwaelder@stud.fh-deggendorf.de,
 *         thomas.eberhart@stud.fh-deggendorf.de
 */
public class EditVorrat extends AbstractController {
	private ArtikelDao artikelDao;
	private LagerTypDao lagertypDao;
	private VorratDao vorratDao;

	public void setArtikelDao(ArtikelDao artikelDao) {
		this.artikelDao = artikelDao;
	}

	public void setLagertypDao(LagerTypDao lagertypDao) {
		this.lagertypDao = lagertypDao;
	}

	public void setVorratDao(VorratDao vorratDao) {
		this.vorratDao = vorratDao;
	}

	@Override
	protected ModelAndView handleRequestInternal(HttpServletRequest req,
			HttpServletResponse resp) throws Exception {
		int id = 0;
		int artikelId = 0;
		ModelAndView mv = new ModelAndView();
		try {
			id = Integer.parseInt(req.getParameter("id"));
/*			Vorrat v = vorratDao.findById(id);
			mv.addObject("title", "Vorrat des Artikels anpassen.");
			mv.addObject("message",
					"Tragen Sie den aktuellen Lagerbestand des Artikels ein.");
			if (v == null) {
				mv.addObject("vorrat", new hdb.dto.VorratDTO(artikelDao.findById(artikelId)));
			} else {
				mv.addObject("vorrat", new hdb.dto.VorratDTO(v));
				
			}*/
		} catch (NumberFormatException e) {
			// TODO: Fehlerbehandlung
/*			mv.addObject("vorrat", new Vorrat());
			mv.addObject("title", "Neuen Vorrat anlegen.");
			mv.addObject("message", "Bitte geben Sie den Vorrat für den Artikel ein.");*/
		}
		try {
			artikelId = Integer.parseInt(req.getParameter("artikelId"));
		} catch (NumberFormatException e) {
			// TODO: Fehlerbehandlung
		}
		
		Vorrat v = vorratDao.findById(id);
		mv.addObject("title", "Vorrat des Artikels anpassen.");
		mv.addObject("message",
				"Tragen Sie den aktuellen Lagerbestand des Artikels ein.");
		if (v == null) {
			mv.addObject("vorrat", new hdb.dto.VorratDTO(artikelDao.findById(artikelId)));
		} else {
			mv.addObject("vorrat", new hdb.dto.VorratDTO(v));
			
		}
		mv.addObject("lagertyp", lagertypDao.findAll());
		mv.setViewName("edit-vorrat");
		return mv;
	}

}
